追求自动化
自动化是程序员永远的追求。 本质是避免无意义的重复。
程序员老兵思维敏捷性,快速反应能力,可能不及刚入行的新人,体力也不如新人(加班, 熬夜, 通宵),但是老兵的生产力往往快过新人好几倍,除了经验之外,就是对自动化的工具的使用。
我们在编译,部署,测试,打包的时候都要用到自动化.
编译的自动化
C语言开发,使用make
Java开发,使用Ant, Maven, Ivy
Android开发,使用 gradle
上面的这些工具,一定是程序员在职业生涯的前半年,必须掌握的.
部署的自动化
这样的脚本有很多。
java世界中的 Ant, Maven 可以用来打包
Python中的Fabric Ruby中的Capistrano ,都部署自动化的好手。
Capistrano是我最推崇的。可以为几乎所有需要在服务器端运行的语言做部署。 他可以做的是:
- 更新远程源代码
- 重启数据库
- 保留历史的部署版本,可以做回滚
感兴趣的同学可以来这里学习,大约2小时的课程: http://edu.51cto.com/course/11237.html
这里需要提及的是,运维同学一定要把自己的部署脚本,做成自动化,会让你的人生特别美好,绝对不要每次部署都手工部署。
另外要注意, 不要自己手写脚本,自己写的脚本其实质量很低,很容易出错,一定要使用Capistrano, Fabric这样的第三方提供的工具.
测试的自动化
对于程序员来说,单元测试,就是,自动化的一种实现,一行命令,就可以,运行上百个单元测试,让我们在第一时间,可以了解系统的,测试,通过百分比,
单元测试也是持续集成的基础,持续集成的本质就是,每隔几分钟就运行一遍所有的单元测试,
对于测试同学来说,不要用人肉做黑盒测试(功能性测试),要把"点按鼠标,敲击键盘",都做成脚本,不断的重复播放.
这样的工具,有很多,包括:
测试WEB 页面使用的: Selenium
测试App 使用的: Appium